---
title: Élément de menu
image: /images/user-guide/kanban-views/kanban.png
---

<Frame>
  <img src="/images/user-guide/kanban-views/kanban.png" alt="Header" />
</Frame>

Un élément de menu polyvalent conçu pour être utilisé dans un menu ou une liste de navigation.

<Tabs>
<Tab title="Usage">

```jsx
import { IconBell } from "@tabler/icons-react";
import { IconAlertCircle } from "@tabler/icons-react";
import { MenuItem } from "twenty-ui/display";

export const MyComponent = () => {
  const handleMenuItemClick = (event) => {
    console.log("Menu item clicked!", event);
  };

  const handleButtonClick = (event) => {
    console.log("Icon button clicked!", event);
  };

  return (
    <MenuItem
      LeftIcon={IconBell}
      accent="default"
      text="Menu item text"
      iconButtons={[{ Icon: IconAlertCircle, onClick: handleButtonClick }]}
      isTooltipOpen={true}
      testId="menu-item-1"
      onClick={handleMenuItemClick}
      className
    />
  );
};
```

</Tab>
<Tab title="Props">

| Propriétés    | Type           | Description                                                                                                                                    |
| ------------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| LeftIcon      | ComposantIcône | Une icône à gauche optionnelle affichée avant le texte dans l'élément de menu                                                                  |
| accent        | chaîne         | Spécifie la couleur d'accent de l'élément de menu. Les options incluent : `default`, `danger` et `placeholder` |
| texte         | chaîne         | Le contenu texte de l'élément de menu                                                                                                          |
| boutonsIcône  | tableau        | Un tableau d'objets représentant des boutons d'icônes supplémentaires associés à l'élément de menu                                             |
| isTooltipOpen | booléen        | Contrôle la visibilité de l'infobulle associée à l'élément de menu                                                                             |
| testId        | chaîne         | L'attribut data-testid à des fins de test                                                                                                      |
| auClique      | fonction       | Fonction de rappel déclenchée lorsqu'on clique sur l'élément de menu                                                                           |
| nomDeClasse   | chaîne         | Nom facultatif pour un style supplémentaire                                                                                                    |

</Tab>
</Tabs>

## Variantes

Les différentes variantes du composant d'élément de menu incluent les suivantes :

### Commande

Un élément de menu de style commande dans un menu pour indiquer des raccourcis clavier.

<Tabs>
<Tab title="Usage">

```jsx
import { IconBell } from "@tabler/icons-react";
import { MenuItemCommand } from "twenty-ui/display";

export const MyComponent = () => {
  const handleCommandClick = () => {
    console.log("Command clicked!");
  };

  return (
    <MenuItemCommand
      LeftIcon={IconBell}
      text="First Option"
      firstHotKey="⌘"
      secondHotKey="1"
      isSelected={true}
      onClick={handleCommandClick}
      className
    />
  );
};
```

</Tab>
<Tab title="Props">

| Propriétés        | Type           | Description                                                                   |
| ----------------- | -------------- | ----------------------------------------------------------------------------- |
| LeftIcon          | ComposantIcône | Une icône à gauche optionnelle affichée avant le texte dans l'élément de menu |
| texte             | chaîne         | Le contenu texte de l'élément de menu                                         |
| premierRaccourci  | chaîne         | Le premier raccourci clavier associé à la commande                            |
| deuxièmeRaccourci | chaîne         | Le deuxième raccourci clavier associé à la commande                           |
| estSélectionné    | booléen        | Indique si l'élément de menu est sélectionné ou surligné                      |
| onClick           | fonction       | Fonction de rappel déclenchée lorsqu'on clique sur l'élément de menu          |
| nomDeClasse       | chaîne         | Nom facultatif pour un style supplémentaire                                   |

</Tab>
</Tabs>

### Draggable

Un élément de menu draggable conçu pour être utilisé dans un menu ou une liste où les éléments peuvent être glissés, et des actions supplémentaires peuvent être effectuées via les boutons d'icônes.

<Tabs>
<Tab title="Usage">

```jsx
import { IconBell } from "@tabler/icons-react";
import { IconAlertCircle } from "@tabler/icons-react";
import { MenuItemDraggable } from "twenty-ui/display";

export const MyComponent = () => {
  const handleMenuItemClick = (event) => {
    console.log("Menu item clicked!", event);
  };

  return (
    <MenuItemDraggable
      LeftIcon={IconBell}
      accent="default"
      iconButtons={[{ Icon: IconAlertCircle, onClick: handleButtonClick }]}
      isTooltipOpen={false}
      onClick={handleMenuItemClick}
      text="Menu item draggable"
      isDragDisabled={false}
      className
    />
  );
};
```

</Tab>
<Tab title="Props">

| Propriétés     | Type           | Description                                                                                                   |
| -------------- | -------------- | ------------------------------------------------------------------------------------------------------------- |
| LeftIcon       | ComposantIcône | Une icône à gauche optionnelle affichée avant le texte dans l'élément de menu                                 |
| accent         | chaîne         | La couleur d'accent de l'élément de menu. Elle peut être `défaut`, `placeholder`, et `danger` |
| boutonsIcône   | tableau        | Un tableau d'objets représentant des boutons d'icônes supplémentaires associés à l'élément de menu            |
| isTooltipOpen  | booléen        | Contrôle la visibilité de l'infobulle associée à l'élément de menu                                            |
| auClique       | fonction       | Fonction de rappel à déclencher lors du clic sur le lien                                                      |
| texte          | chaîne         | Le contenu texte de l'élément de menu                                                                         |
| isDragDisabled | booléen        | Indique si le glissement est désactivé                                                                        |
| nomDeClasse    | chaîne         | Nom facultatif pour un style supplémentaire                                                                   |

</Tab>
</Tabs>

### Sélection multiple

Fournit un moyen d'implémenter une fonctionnalité de sélection multiple avec une case à cocher associée.

<Tabs>
<Tab title="Usage">

```jsx
import { IconBell } from "@tabler/icons-react";
import { MenuItemMultiSelect } from "twenty-ui/display";

export const MyComponent = () => {

  return (
    <MenuItemMultiSelect
      LeftIcon={IconBell}
      text="First Option"
      selected={false}
      className
    />
  );
};
```

</Tab>
<Tab title="Props">

| Propriétés     | Type           | Description                                                                   |
| -------------- | -------------- | ----------------------------------------------------------------------------- |
| LeftIcon       | ComposantIcône | Une icône à gauche optionnelle affichée avant le texte dans l'élément de menu |
| texte          | chaîne         | Le contenu texte de l'élément de menu                                         |
| sélectionné    | booléen        | Indique si l'élément de menu est sélectionné (coché)       |
| onSelectChange | fonction       | Fonction de rappel déclenchée lorsque l'état de la case à cocher change       |
| nomDeClasse    | chaîne         | Nom facultatif pour un style supplémentaire                                   |

</Tab>
</Tabs>

### Sélection multiple avec avatar

Un élément de menu multi-sélection avec un avatar, une case à cocher pour la sélection, et du contenu textuel.

<Tabs>
<Tab title="Usage">

```jsx
import { MenuItemMultiSelectAvatar } from "twenty-ui/display";

export const MyComponent = () => {
  const imageUrl =
    "";

  return (
    <MenuItemMultiSelectAvatar
      avatar={<img src={imageUrl} alt="Avatar" />}
      text="First Option"
      selected={false}
      className
    />
  );
};
```

</Tab>
<Tab title="Props">

| Propriétés     | Type        | Description                                                             |
| -------------- | ----------- | ----------------------------------------------------------------------- |
| avatar         | `ReactNode` | L'avatar ou l'icône à afficher sur le côté gauche de l'élément de menu  |
| texte          | chaîne      | Le contenu texte de l'élément de menu                                   |
| sélectionné    | booléen     | Indique si l'élément de menu est sélectionné (coché) |
| onSelectChange | fonction    | Fonction de rappel déclenchée lorsque l'état de la case à cocher change |
| nomDeClasse    | chaîne      | Nom facultatif pour un style supplémentaire                             |

</Tab>
</Tabs>

### Naviguer

Un élément de menu comportant une icône facultative à gauche, un contenu textuel, et une icône de chevron droite.

<Tabs>
<Tab title="Usage">

```jsx
import { IconBell } from "@tabler/icons-react";
import { MenuItemNavigate } from "twenty-ui/display";

export const MyComponent = () => {
  const handleNavigation = () => {
    console.log("Navigate to another page");
  };

  return (
    <MenuItemNavigate
      LeftIcon={IconBell}
      text="First Option"
      onClick={handleNavigation}
      className
    />
  );
};
```

</Tab>
<Tab title="Props">

| Propriétés  | Type           | Description                                                                   |
| ----------- | -------------- | ----------------------------------------------------------------------------- |
| LeftIcon    | ComposantIcône | Une icône à gauche optionnelle affichée avant le texte dans l'élément de menu |
| texte       | chaîne         | Le contenu texte de l'élément de menu                                         |
| auClique    | fonction       | Fonction de rappel à déclencher lorsqu'on clique sur l'élément de menu        |
| nomDeClasse | chaîne         | Nom facultatif pour un style supplémentaire                                   |

</Tab>
</Tabs>

### Sélectionner

Un élément de menu sélectionnable, avec un contenu facultatif à gauche (icône et texte) et un indicateur (icône de coche) pour l'état sélectionné.

<Tabs>
<Tab title="Usage">

```jsx
import { IconBell } from "@tabler/icons-react";
import { MenuItemSelect } from "twenty-ui/display";

export const MyComponent = () => {
  const handleSelection = () => {
    console.log("Menu item selected");
  };

  return (
    <MenuItemSelect
      LeftIcon={IconBell}
      text="First Option"
      selected={true}
      disabled={false}
      hovered={false}
      onClick={handleSelection}
      className
    />
  );
};
```

</Tab>
<Tab title="Props">

| Propriétés  | Type           | Description                                                                   |
| ----------- | -------------- | ----------------------------------------------------------------------------- |
| LeftIcon    | ComposantIcône | Une icône à gauche optionnelle affichée avant le texte dans l'élément de menu |
| texte       | chaîne         | Le contenu texte de l'élément de menu                                         |
| sélectionné | booléen        | Indique si l'élément de menu est sélectionné (coché)       |
| désactivé   | booléen        | Indique si l'élément de menu est désactivé                                    |
| survolé     | booléen        | Indique si l'élément de menu est actuellement survolé                         |
| auClique    | fonction       | Fonction de rappel à déclencher lorsqu'on clique sur l'élément de menu        |
| nomDeClasse | chaîne         | Nom facultatif pour un style supplémentaire                                   |

</Tab>
</Tabs>

### Sélectionner Avatar

Un élément de menu sélectionnable avec un avatar, avec un contenu facultatif à gauche (avatar et texte) et un indicateur (icône de coche) pour l'état sélectionné.

<Tabs>
<Tab title="Usage">

```jsx
import { MenuItemSelectAvatar } from "twenty-ui/display";

export const MyComponent = () => {
  const imageUrl =
    "";

  const handleSelection = () => {
    console.log("Menu item selected");
  };

  return (
    <MenuItemSelectAvatar
      avatar={<img src={imageUrl} alt="Avatar" />}
      text="First Option"
      selected={true}
      disabled={false}
      hovered={false}
      testId="menu-item-test"
      onClick={handleSelection}
      className
    />
  );
};

```

</Tab>
<Tab title="Props">

| Propriétés  | Type        | Description                                                             |
| ----------- | ----------- | ----------------------------------------------------------------------- |
| avatar      | `ReactNode` | L'avatar ou l'icône à afficher sur le côté gauche de l'élément de menu  |
| texte       | chaîne      | Le contenu texte de l'élément de menu                                   |
| sélectionné | booléen     | Indique si l'élément de menu est sélectionné (coché) |
| désactivé   | booléen     | Indique si l'élément de menu est désactivé                              |
| survolé     | booléen     | Indique si l'élément de menu est actuellement survolé                   |
| testId      | chaîne      | L'attribut data-testid à des fins de test                               |
| onClick     | fonction    | Fonction de rappel à déclencher lorsqu'on clique sur l'élément de menu  |
| nomDeClasse | chaîne      | Nom facultatif pour un style supplémentaire                             |

</Tab>
</Tabs>

### Sélection de Couleur

Un élément de menu sélectionnable avec un échantillon de couleur pour les scénarios où vous souhaitez que les utilisateurs choisissent une couleur dans un menu.

<Tabs>
<Tab title="Usage">

```jsx
import { MenuItemSelectColor } from "twenty-ui/display";

export const MyComponent = () => {
  const handleSelection = () => {
    console.log("Menu item selected");
  };

  return (
    <MenuItemSelectColor
      color="green"
      selected={true}
      disabled={false}
      hovered={true}
      variant="default"
      onClick={handleSelection}
      className
    />
  );
};
```

</Tab>
<Tab title="Props">

| Propriétés  | Type     | Description                                                                                                                                                                                                             |
| ----------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| couleur     | chaîne   | La couleur à thème à afficher comme échantillon dans l'élément de menu. Les options incluent: `vert`, `turquoise`, `ciel`, `bleu`, `violet`, `rose`, `rouge`, `orange`, `jaune`, `gris` |
| sélectionné | booléen  | Indique si l'élément de menu est sélectionné (coché)                                                                                                                                                 |
| désactivé   | booléen  | Indique si l'élément de menu est désactivé                                                                                                                                                                              |
| survolé     | booléen  | Indique si l'élément de menu est actuellement survolé                                                                                                                                                                   |
| variante    | chaîne   | La variante de l'échantillon de couleur. Elle peut être `défaut` ou `pipeline`                                                                                                                          |
| onClick     | fonction | Fonction de rappel à déclencher lorsqu'on clique sur l'élément de menu                                                                                                                                                  |
| nomDeClasse | chaîne   | Nom facultatif pour un style supplémentaire                                                                                                                                                                             |

</Tab>
</Tabs>

### Basculer

Un élément de menu avec un interrupteur à bascule associé pour permettre aux utilisateurs d'activer ou de désactiver une fonctionnalité spécifique

<Tabs>
<Tab title="Usage">

```jsx
import { IconBell } from '@tabler/icons-react';

import { MenuItemToggle } from 'twenty-ui/display';

export const MyComponent = () => {

  return (
    <MenuItemToggle
      LeftIcon={IconBell}
      text="First Option"
      toggled={true}
      toggleSize="small"
      className
    />
  );
};
```

</Tab>
<Tab title="Props">

| Propriétés            | Type           | Description                                                                            |
| --------------------- | -------------- | -------------------------------------------------------------------------------------- |
| LeftIcon              | ComposantIcône | Une icône à gauche optionnelle affichée avant le texte dans l'élément de menu          |
| texte                 | chaîne         | Le contenu texte de l'élément de menu                                                  |
| basculé               | booléen        | Indique si l'interrupteur est en "marche" ou "arrêt".                  |
| surChangementBasculer | fonction       | Fonction de rappel déclenchée lorsque l'état de l'interrupteur change. |
| tailleBasculer        | chaîne         | La taille de l'interrupteur à bascule. Cela peut être soit \          |
| nomDeClasse           | chaîne         | Nom facultatif pour un style supplémentaire                                            |

</Tab>
</Tabs>
